#ifndef ______________WARD_PLAYER_H
#define ______________WARD_PLAYER_H

#include "Force.h"


class player
{

public:

	player(int pid, int rC=255, int gC=255, int bC=255) { playerID = pid; r = rC; g = gC; b = bC; shipForce = &Force(playerID,0,1);}

	//adds a force to the player's ships
	void reinforce(Force f);

	//gets the player's (unique?) ID
	int getID() { return playerID; }
	int getLoc() { return location; }
	//move the player's location
	void move(int src, int dst, int turns);

	//gets the vector of all visited planets (not guaranteed to be the same size as the #planets)
	vector<bool> visited() { return PlanetsSeen; }

	//returns whether or not the player has been to planet "loc", safe for all values
	bool haveSeen(unsigned int loc) { if(loc > PlanetsSeen.size()) return false; else return PlanetsSeen[loc]; }

	//marks planet "loc" as "seen"
	void see(unsigned int loc);
	void setLoc(int loc) { location = loc; }
	//get the ship's force so you can do things with it..
	Force* getForce() { return shipForce;}

private:
	//the player's ID number
	int playerID;

	//player's personal color
	int r, g, b;

	//player's current location (-1 for in transit, otherwise a planet number)
	int location, source, turns;

	//1 if seen, 0 if not
	vector<bool> PlanetsSeen;

	Force* shipForce;

};


#endif